// 导入数据库操作对象
const db = require('../db/index')

// 发布文章模块
exports.addArticle = (req, res) => {
    // 手动校验file数据
    if (!req.file || req.file.fieldname !== 'cover_img') return res.cc('文章封面为必选参数')

    const path = require('path')
    // 文章信息对象
    const articInfo = {
        ...req.body,
        //  '\\uploads\\3d169908a104616dedeac60218c9eb71'
        cover_img: path.join('/uploads', req.file.filename),
        pub_date: new Date(),
        author_id: req.user.id
    }
    const insertSql = 'insert into ev_articles set ?'
    db.query(insertSql, articInfo, (err, results) => {
        // 执行 SQL 语句失败
        if (err) return res.cc(err)
        // 执行 SQL 语句成功，但是影响行数不等于 1
        if (results.affectedRows !== 1) return res.cc('发布文章失败！')

        res.cc('文章发布成功', 0)
    })
}

// 获取文章列表数据
exports.getArticle = (req, res) => {
    // 查询is_delete为一的数据
    const selectStr = 'select * from ev_articles where is_delete=0 order by id asc'
    db.query(selectStr, (err, results) => {
        // 执行 SQL 语句失败
        if (err) return res.cc(err)

        res.send({
            status: 0,
            message: '获取文章列表成功',
            data: results
        })
    })
}

// 根据 Id 删除文章数据
exports.delArticleById = (req, res) => {
    // 将is_delete标记改为1 标记删除
    const upStr = 'update ev_articles set is_delete=1 where id=?'
    db.query(upStr, req.params.id, (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('文章列表删除失败')

        res.cc('文章删除成功', 0)
    })
}

// 根据 Id 获取文章详情
exports.getArticleById = (req, res) => {
    // sql语句
    const selectStr = 'select * from ev_articles where id=?'
    db.query(selectStr, req.params.id, (err, results) => {
        // 失败
        if (err) return res.cc(err)
        if (results.length !== 1) return res.cc('查询失败')
        //成功    
        res.send({
            status: 0,
            messagel: '获取文章成功',
            data: results[0]
        })
    })
}

// 根据 Id 更新文章信息
exports.upArticleByid = (req, res) => {
    // 手动校验file数据
    if (!req.file || req.file.fieldname !== 'cover_img') return res.cc('文章封面为必选参数')
    const path = require('path')
    // 文章信息对象
    const upArticInfo = {
        ...req.body,
        cover_img: path.join('/uploads', req.file.filename),
        pub_date: new Date(),
        author_id: req.user.id
    }
    const upSql = 'update ev_articles set ? where id=?'
    db.query(upSql, [upArticInfo, upArticInfo.id], (err, results) => {
        if (err) return res.cc(err)
        if (results.affectedRows !== 1) return res.cc('更新失败')

        res.cc('修改成功',0)
    })
}